package cn.wolfcode.luowowo.article.service;

import cn.wolfcode.luowowo.article.domain.StrategyDetail;
import cn.wolfcode.luowowo.common.query.QueryObject;
import cn.wolfcode.luowowo.common.query.StrategyQueryObject;
import cn.wolfcode.luowowo.common.query.TravelQueryObject;
import cn.wolfcode.luowowo.member.domain.UserInfo;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface IStrategyDetailService {
    PageInfo<StrategyDetail> query(StrategyQueryObject qo);

    StrategyDetail get(Long id);

    void saveOrUpdate(StrategyDetail entity, String tags);

    /**
     * 根据文章的id,查询文章标签
     * @param id
     * @return
     */
    String getTags(Long id);

    List< StrategyDetail> selectByDestId(Long id);

    List< StrategyDetail>  selectByCatalogId(Long catalogId);

    List< StrategyDetail> listViewNumTop3(Long id);

    List<StrategyDetail> list();

    /**
     * 更新文章的热数据统计
     * @param detail
     */
    void updateStats(StrategyDetail detail);
    /**
     * 通过用户的id查询该用户收藏的所有攻略
     * @param qo
     * @return
     */
    PageInfo<StrategyDetail> listByUserFavor(TravelQueryObject qo);
    /**
     * 通过攻略id,用户id来删除数据库中的关系
     * @param user
     * @param travelId
     * @return
     */
    void deleteIsFavor(UserInfo user, Long travelId);

    /**
     * 判断用户是否收藏的该攻略,如果没有,收藏,如果有,取消收藏
     * @param user  该用户的id
     * @param strategyId  该攻略的id
     * @return
     */
    void isFavor(UserInfo user,Long strategyId);
}
